#include <stdio.h>
#include <unistd.h>

int main()
{
    int i = 3;
    while(i >= 0)
    {
        printf("%-2d\r", i); // \r使光标回行首，覆盖输出
        fflush(stdout);      // 强制刷新缓冲区
        i--;
        sleep(1);
    }
    printf("\n");  // 倒计时结束后换行

    // 测试stdout刷新策略的代码
    printf("测试1：无换行无刷新 "); // 无\n且无fflush
    sleep(2);                       // 暂停2秒，观察是否输出

    printf("测试2：无换行但手动刷新 ");
    fflush(stdout);                 // 强制刷新
    sleep(2);                       // 暂停2秒，观察是否输出

    printf("测试3：有换行符\n");    // \n触发自动刷新
    sleep(2);

    fprintf(stdout, "测试4：fprintf带换行\n"); // 等同于printf带\n
    sleep(2);
    return 0;
}

